package cn.sczhyt.modules.sys.service.impl;

import cn.sczhyt.common.utils.R;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import cn.sczhyt.modules.sys.dao.SysMobileCodeDao;
import cn.sczhyt.modules.sys.entity.SysMobileCodeEntity;
import cn.sczhyt.modules.sys.service.SysMobileCodeService;
import org.springframework.stereotype.Service;


@Service("sysMobileCodeService")
public class SysMobileCodeServiceImpl extends ServiceImpl<SysMobileCodeDao, SysMobileCodeEntity> implements SysMobileCodeService {

    @Override
    public boolean validate(String mobile, String code) {


        SysMobileCodeEntity mobileCodeEntity = this.getOne(new QueryWrapper<SysMobileCodeEntity>().eq("mobile", mobile));
        if(mobileCodeEntity == null){
            return false;
        }



        if(mobileCodeEntity.getMsgCode().equals(code) && mobileCodeEntity.getExpireTime().getTime() >= System.currentTimeMillis()){
            return true;
        }

        return false;
    }

    @Override
    public R checkCode(String mobile, String code) {

        SysMobileCodeEntity mobileCodeEntity = this.getOne(new QueryWrapper<SysMobileCodeEntity>().eq("mobile", mobile));
        if(mobileCodeEntity == null){
            return R.error(3001,"请输入正确的手机号码");
        }

        if (!mobileCodeEntity.getMsgCode().equals(code)) {
            return R.error(3003,"验证码错误，请重新输入");
        }

        if(mobileCodeEntity.getMsgCode().equals(code) && mobileCodeEntity.getExpireTime().getTime() >= System.currentTimeMillis()){
            return R.ok();
        }
        return R.error(3002,"验证码已超时，请重新获取");

    }
}
